從第一天到今天, 主軸是從training、tracking到serving. 在第一個範例(fastai, MNIST)中我們使用JupyterHub做training, 使用MLflow做trackning, 而使用Django做Serving, 架構圖說明如下:
在第二個範例中, 我們將serving的環境由Django改為Seldon core, 架構圖修改如下. 使用Seldon core的好處是安裝容易, 因為我們已經有一座K8s, 以helm安裝sledon core是一件容易的事, 而且可以整合istio所提供的ingress controller功能(NodePort), 讓我們可以在K8s cluster外部存取到模型的endpoint以取得推論結果.
但比較麻煩的事情是我們還要準備pvc讓Seldon能夠讀取model檔, 而且放置model檔的過程有點麻煩(做法是自已建立一個POD, 再由這個POD mount pvc的空間, 再將model檔複製到pvc空間).
最後, 再把MinIO加進來(取代pvc的方式), 架構圖如下所示. 加入MinIO之後, 我們可以使用指令將model檔存放到MinIO的儲存空間, 然後seldon core可以使用s3://
protocol的方式讀取model檔, 這樣可以簡化部署model的過程.
到這裡講完第二個範例內容, 下一篇開始說明第三個範例.